home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / QuickDraw GX / Programming Stuff / Sample Code / Printing Samples / Printer Drivers… / ImageWriterLQ (alt. rdip) / UniversalMessageResources.r < prev    next >
Encoding:
Text File  |  1996-06-15  |  42.1 KB  |  1,182 lines  |  [TEXT/MPS ]

  1. /* ------------------------------------------------------------------------------
  2. FILENAME
  3.     UniversalMessageResources.r
  4.  
  5. DESCRIPTION
  6.     This module contains the ImageWriter LQ constants, types, and resources that
  7.     are specific to supporting the New (QuickDraw GX) API.
  8.             
  9.     Note: all resources should be designated to load into the system heap.
  10.  
  11. COPYRIGHT
  12.      Copyright Apple Computer, Inc. 1992-1994
  13.      All rights reserved. 
  14.     
  15.     12/20/93 - dmh - Sync'd with the shipping 1.0b3 GX driver.
  16.      8/28/94 - dmh - Sync'd with the shipping 1.0.1 GX driver.
  17.      6/14/96 - cn  - Updated to support Universal Interfaces 2.1.
  18.  
  19. -------------------------------------------------------------------------------- */
  20.  
  21. // System 7.0 Compatible
  22. #define SystemSevenOrLater        1
  23.  
  24. // Include System Resource Definitions
  25. #include "Types.r"
  26. #include "SysTypes.r"
  27. #include "BalloonTypes.r"
  28.  
  29. // Include the ImageWriter LQ driver constants that are used in the resources 
  30. #include "LQResources.h"
  31.  
  32. // Include the public QuickDraw GX printing files 
  33. #include "GXPrintingResTypes.r"
  34.  
  35.  
  36. /*********************************************************************************
  37.  *                                RESOURCES                                                              *
  38.  *********************************************************************************/
  39.  
  40. /*************************** Universal Imaging Message Override Resource **************************/
  41. // This overrideType resource tells the Printing Manager which new Universal Imaging 
  42. // Messages the driver overrides. 
  43.  
  44. resource gxOverrideType (gxDriverUniversalOverrideID, sysheap, purgeable)
  45. {
  46.     {
  47.         gxInitialize,                kNewAPISegmentID, kFirstMsgJumpTableOffset,
  48.         gxShutDown,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 4,
  49.         gxJobDefaultFormatDialog,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 8,
  50.         gxJobPrintDialog,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 12,
  51.         gxJobFormatModeQuery,         kNewAPISegmentID, kFirstMsgJumpTableOffset + 16,
  52.         gxOpenConnection,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 20,
  53.         gxCleanupOpenConnection,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 24,
  54.         gxStartSendPage,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 28,
  55.         gxImagePage,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 32,
  56.         gxRenderPage,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 36,
  57.         gxDefaultPrinter,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 40,
  58.         gxDefaultFormat,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 44,
  59.         gxDefaultJob,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 48,
  60.         gxSetupImageData,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 52,
  61.         gxFetchTaggedData,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 56,
  62.         gxDefaultDesktopPrinter,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 60,
  63.         gxGetDTPMenuList,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 64,
  64.         gxDTPMenuSelect,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 68,
  65.     };
  66. };
  67.  
  68.  
  69. /*************************** Raster Imaging Message Override Resource **************************/
  70. // This overrideType resource tells the Printing Manager which Raster Imaging Messages the driver 
  71. // overrides. 
  72.  
  73. resource gxOverrideType (gxDriverImagingOverrideID, sysheap, purgeable)
  74. {
  75.     {
  76.         gxRasterPackageBitmap,         kNewAPISegmentID, kFirstMsgJumpTableOffset + 72,
  77.         gxRasterLineFeed,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 76,
  78.     };
  79. };
  80.  
  81.  
  82. /*************************** Type of Imaging System Supported by the Driver **************************/
  83. // This imagingSystemResType resource tells the Printing Manager the type of imaging system this 
  84. // driver uses.
  85.  
  86. resource gxImagingSystemSelectorType (gxImagingSystemSelectorID, sysheap, purgeable)
  87. {
  88.     gxRasterPrinterType        // LaserWriter SC uses the raster imaging system 
  89. };
  90.  
  91.  
  92. /*************************** Customizing Behavior of Raster Imaging Messages ***************************/
  93. // For most raster devices, the driver should include a resource of type, rasterPrefsType.  This 
  94. // resource allows the driver to specify the imaging options and format page scaling.   
  95.  
  96. resource gxRasterPrefsType (gxRasterPrefsID, sysheap, purgeable)
  97. {
  98.     gxDefaultRaster,            // default options are fine
  99.     
  100.     0x00D80000,    0x00D80000,        // 216 x 216 dpi device
  101.     24,                            // min band size
  102.     0,                            // max band size (0 = full page)
  103.     0x00008000,                    // RAM percentage (50%)
  104.     100*1024,                    // RAM slop (100K)
  105.     1,                            // 1 bit per plane device
  106.     {
  107.         gxDefaultOffscreen,                                    // YELLOW plane.  Use default halftoning.
  108.         0x000F0000,                                            // Angle = 15 degrees
  109.         0x002D0000,                                            // Freq = 45
  110.         gxRoundDot,                                            // RoundDot dithering
  111.         gxComponent3Tint,                                    // Extract yellow and dither it
  112.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                // DotColor == black
  113.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // Background color == white
  114.         gxCMYKSpace,                                        // Convert to gxCMYKSpace before halftoning.
  115.         gxNoSpace,                                            // No explicit color space
  116.         gxNoSet,                                            // No color set
  117.         gxNoProfile,                                        // No profile specified
  118.  
  119.         gxDefaultOffscreen,                                    // MAGENTA plane.  Use default halftoning.
  120.         0x00000000,                                            // Angle = 0 degrees
  121.         0x002D0000,                                            // Freq = 45
  122.         gxRoundDot,                                            // RoundDot dithering
  123.         gxComponent2Tint,                                    // extract magenta and dither it
  124.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                // dotColor == black
  125.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // background color == white
  126.         gxCMYKSpace,                                        // Convert to gxCMYKSpace before halftoning.
  127.         gxNoSpace,                                            // No explicit color space
  128.         gxNoSet,                                            // No color set
  129.         gxNoProfile,                                        // No profile specified
  130.  
  131.         gxDefaultOffscreen,                                    // CYAN plane.  Use default halftoning.
  132.         0x003C0000,                                            // Angle = 60 degrees
  133.         0x002D0000,                                            // Freq = 45
  134.         gxRoundDot,                                            // RoundDot dithering
  135.         gxComponent1Tint,                                    // Extract cyan and dither it
  136.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                // DotColor == black
  137.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // Background color == white
  138.         gxCMYKSpace,                                        // Convert to gxCMYKSpace before halftoning.
  139.         gxNoSpace,                                            // No explicit color space
  140.         gxNoSet,                                            // No color set
  141.         gxNoProfile,                                        // No profile specified
  142.  
  143.         gxDefaultOffscreen,                                    // BLACK plane.  Use default halftoning.
  144.         0x002D0000,                                            // Angle = 45 degrees
  145.         0x002D0000,                                            // Freq = 45
  146.         gxRoundDot,                                            // RoundDot dithering
  147.         gxComponent4Tint,                                    // Extract black and dither it
  148.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                // DotColor == black
  149.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // Background color == white
  150.         gxCMYKSpace,                                        // Convert to gxCMYKSpace before halftoning.
  151.         gxNoSpace,                                            // No explicit color space
  152.         gxNoSet,                                            // No color set
  153.         gxNoProfile                                            // No profile specified
  154.     };
  155. };
  156.  
  157. // The rasterPackType resource allows us to control the packaging that takes place within the
  158. // raster generic driver's RasterDataIn proc.  Drivers which do not use the Raster 
  159. // generic RasterDataIn proc or override it entirely themselves need not have this resource.
  160.  
  161. resource gxRasterPackType (gxRasterPackID, sysheap, purgeable)
  162. {
  163.     kBufferSize,        // packing buffer size - for the ImageWriter LQ 
  164.                             // this is the # of bytes in our largest single packaged line
  165.     
  166.     4,                        // we are a CMYK device (so colorsPasses == 4)
  167.     24,                    // we have a 24 pixel high head
  168.     1,                        // it takes one pass to achive this 24 pixels
  169.     0,                        // number of pixel difference between passes; N/A since we do it in one pass
  170.     gxInterlaceColor,    // avoid ribbon contamination
  171. };
  172.  
  173. // The rasterPackOptionsType resource controls the remaining 2 raster packaging messages: RasterLineFeed,
  174. // and RasterPackageBitmap.  If you allow the generic driver to implement these messages for
  175. // you, then you MUST have a resource of this type. 
  176.  
  177. resource gxRasterPackOptionsType (gxRasterPackOptionsID, sysheap, purgeable)
  178. {
  179.     gxPrintingDriverBaseID,            //    Resource ID of 'wstr' resource containing the start page string to send to printer
  180.     gxPrintingDriverBaseID + 4,    //    Resource ID of 'wstr' resource containing the form feed string to send to printer
  181.     
  182.     // forward line feed characteristics
  183.     99,                            // max line feed amount is 99
  184.     gxRasterNumToASCII,        // express line feed as ASCII
  185.     2,                                // minimum width of ASCII number is 2
  186.     "0",                            // pad ASCII number with leading zeros
  187.     "\0X1BT",                    // <esc>T == set line feed size
  188.     "\0X1Bf\0X0A",                // <esc>f<lf> == direction forward, do line feed
  189.     
  190.     // reverse line feed characteristics
  191.     99,                            // max line feed amount is 99
  192.     gxRasterNumToASCII,        // express line feed as ASCII
  193.     2,                                // minimum width of ASCII number is 2
  194.     "0",                            // pad ASCII number with leading zeros
  195.     "\0X1BT",                    // <esc>T == set line feed size
  196.     "\0X1Br\0X0A",                // <esc>r<lf> == direction reverse, do line feed
  197. };
  198.  
  199. // These 'wstr' resources are the start page and form feed strings that are referenced in the rasterPackOptionsType
  200. // resource
  201.  
  202. resource 'wstr' (kHighResUniDirID, sysheap, purgeable)
  203. {
  204.     "\0X1B>" "\0X1Be"                // Start page string for high resolution: unidirectional, 216 dpi == ESC > ESC e
  205. };
  206.  
  207. resource 'wstr' (kHighResBiDirID, sysheap, purgeable)
  208. {
  209.     "\0X1B<" "\0X1Be"                // Start page string for high resolution: bidirectional, 216 dpi == ESC < ESC e
  210. };
  211.  
  212. resource 'wstr' (kLowResUniDirID, sysheap, purgeable)
  213. {
  214.     "\0X1B>" "\0X1Bn"    "\0X1B!"    // Start page string for standard resolution: unidirectional, 72 dpi, boldface  == ESC > ESC e ESC !
  215. };
  216.  
  217. resource 'wstr' (kLowResBiDirID, sysheap, purgeable)
  218. {
  219.     "\0X1B<" "\0X1Bn"    "\0X1B!"    // Start page string for standard resolution: bidirectional, 72 dpi, boldface == ESC < ESC n ESC !
  220. };
  221.  
  222. resource 'wstr' (gxPrintingDriverBaseID + 4, sysheap, purgeable) 
  223. {
  224.     "\0X0C"    "\0X1B\0X22"        // End page string:   a control-L for the IW LQ's form feed and turn off boldface if needed (ESC ")
  225. };
  226.  
  227.  
  228. /*************************** I/O Related Resources ***************************/
  229.  
  230. // This universalIOPrefsType resource controls the behavior of the standard buffering and IO 
  231. // within the Universal Driver. 
  232.  
  233. resource gxUniversalIOPrefsType (gxUniversalIOPrefsID, sysheap, purgeable)
  234. {
  235.         standardIO,
  236.         4,                    // Universal Driver will not allocate any buffers 
  237.         kBufferSize,    // size of the buffers allocated (at least as big as one scan line) 
  238.         10,                // number of I/O request blocks to allocate for the Universal Driver's I/O 
  239.         1200,                // 1200 tick timeout for open/close 
  240.         1200,                // 1200 tick timeout for reading and writing 
  241. };
  242.     
  243. // The following resources are strings for capturing PAP ImageWriter LQ's
  244.  
  245. resource gxCaptureType (gxCapturedAppleTalkType, sysheap, purgeable)
  246. {
  247.     "\0D011LQShared"
  248. };
  249. resource gxCaptureType (gxUncapturedAppleTalkType, sysheap, purgeable)
  250. {
  251.     "\0D011LQ"
  252. };
  253.  
  254. resource gxCaptureType (gxCaptureStringID, sysheap, purgeable)
  255. {
  256.     "\0X1B\0X62NAMELENPRINTERNAMETYPELENPRINTERTYPE\0X01*"
  257. };
  258.  
  259. resource gxCaptureType (gxReleaseStringID, sysheap, purgeable)
  260. {
  261.     "\0X1B\0X62NAMELENPRINTERNAMETYPELENPRINTERTYPE\0X01*"
  262. };
  263.  
  264.  
  265. /*************************** Status Dialog Related Resources ***************************/
  266. // The 'stat' resources provide the Printing Manager the status messages that need to be displayed at
  267. // any given time during the printing process. The driver forces statuses to be displayed by calling 
  268. // either ReportStatus or AlertTheUser, depending upon whether the user needs to make some decision 
  269. // about the printing process (e.g. paper tray not properly loaded. Note that though the statID field
  270. // of the 'stat' resource is for the clients use (us), PrinterShare requires that any 'stat' list
  271. // entry that has the same status type (e.g. informationalStatus) must have a unique statID.  The reason
  272. // is that PrinterShare uses the (status type, statID) pair in comparisons to see if the status has
  273. // changed.
  274.  
  275. resource 'stat' (kDriverStatusID, sysheap, purgeable)         // Driver status informational messages only 
  276. {
  277.     kDrvrCreatorType,
  278.     {
  279.         printerReady,     1,        kNoAlertCoolID,    "Sending data to the printer…";
  280.     }
  281. };
  282.  
  283.  
  284. /*************************** Paper Type Definitions for the New Printing Architecture **************************/
  285. // These paper type definitions represent the new settings for the ImageWriter LQ's paper 
  286. // sizes. 
  287.  
  288. resource 'ptyp' (kNewPaperTypesID + 1, sysheap, purgeable)            // US Letter 
  289. {
  290.     "US Letter",
  291.     
  292.     // page rectangle 
  293.     0x00000000,                // 8.0 x 10.33
  294.     0x00000000,                
  295.     0x02400000,                
  296.     0x02E7C298,                
  297.  
  298.     // paper rectangle 
  299.     0xFFEE0000,                // 8.5 x 11.0
  300.     0xFFE7E14C,                
  301.     0x02520000,                
  302.     0x02FFE14C,                
  303.     
  304.     usLetterBase,
  305.     kDrvrCreatorType,
  306.  
  307.     inch,
  308.     newStylePaperType,
  309.     isDefaultPaperType,
  310.     {}
  311. };
  312.  
  313. resource 'ptyp' (kNewPaperTypesID + 2, sysheap, purgeable)            // US Legal 
  314. {
  315.     "US Legal",
  316.     
  317.     // page rectangle 
  318.     0x00000000,                // 8.0 x 13.33
  319.     0x00000000,                
  320.     0x02400000,                    
  321.     0x03BFC298,                
  322.  
  323.     // paper rectangle 
  324.     0xFFEE0000,                // 8.5 x 14.0
  325.     0xFFE7E14C,                
  326.     0x02520000,                
  327.     0x03D7E14C,                
  328.     
  329.     usLegalBase,
  330.     kDrvrCreatorType,
  331.  
  332.     inch,
  333.     newStylePaperType,
  334.     notDefaultPaperType,
  335.     {}
  336. };
  337.  
  338. resource 'ptyp' (kNewPaperTypesID + 3, sysheap, purgeable)            // Computer Paper 
  339. {
  340.     "Computer Paper",
  341.     
  342.     // page rectangle 
  343.     0x00000000,                // 13.33 x 10.33 
  344.     0x00000000,
  345.     0x03BFC298,
  346.     0x02E7C298,
  347.  
  348.     // paper rectangle 
  349.     0xFFE7E14C,                //    14.0 x 11.0
  350.     0xFFE7E14C,
  351.     0x03D7E14C,
  352.     0x02FFE14C,
  353.     
  354.     unknownBase,
  355.     kDrvrCreatorType,
  356.  
  357.     inch,
  358.     newStylePaperType,
  359.     notDefaultPaperType,
  360.     {}
  361. };
  362.  
  363. resource 'ptyp' (kNewPaperTypesID + 4, sysheap, purgeable)            // A4 Letter 
  364. {
  365.     "A4 Letter",
  366.     
  367.     // page rectangle 
  368.     0x00000000,                // 8.0 x 11.0 
  369.     0x00000000,                
  370.     0x02400000,                
  371.     0x03180000,                
  372.  
  373.     // paper rectangle 
  374.     0xFFF70000,                // 8.25 x 11.67
  375.     0xFFE7E14C,                
  376.     0x02490000,                
  377.     0x03301EB4,                
  378.     
  379.     a4LetterBase,
  380.     kDrvrCreatorType,
  381.  
  382.     inch,
  383.     newStylePaperType,
  384.     notDefaultPaperType,
  385.     {}
  386. };
  387.  
  388. resource 'ptyp' (kNewPaperTypesID + 5, sysheap, purgeable)            // International Fanfold 
  389. {
  390.     "International Fanfold",
  391.     
  392.     // page rectangle 
  393.     0x00000000,                    // 8.0 x 11.33 
  394.     0x00000000,                    
  395.     0x02400000,                    
  396.     0x032FC298,                    
  397.     
  398.     // paper rectangle 
  399.     0xFFF70000,                    // 8.25 x 12.0 
  400.     0xFFE7E14C,                    
  401.     0x02490000,                    
  402.     0x0347E14C,                    
  403.     
  404.     unknownBase,
  405.     kDrvrCreatorType,
  406.  
  407.     inch,
  408.     newStylePaperType,
  409.     notDefaultPaperType,
  410.     {}
  411. };
  412.  
  413. resource 'ptyp' (kNewPaperTypesID + 6, sysheap, purgeable)            // Envelope (#10) 
  414. {
  415.     "Envelope (#10)",
  416.     
  417.     // page rectangle 
  418.     0x00000000,                    // 9.3333 x 3.3333 
  419.     0x00000000,                    
  420.     0x029FFF58,                    
  421.     0x00EFFF58,                    
  422.     
  423.     // paper rectangle 
  424.     0xFFF9FFAC,                    // 9.5 x 4.125 
  425.     0xFFE37FAC,                    
  426.     0x02A5FFAC,                    
  427.     0x010C7FAC,                    
  428.     
  429.     unknownBase,
  430.     kDrvrCreatorType,
  431.  
  432.     inch,
  433.     newStylePaperType,
  434.     notDefaultPaperType,
  435.     {}
  436. };
  437.  
  438.  
  439. /*************************** "LQ Options" Job Print Dialog Panel Resources **************************/
  440. // The following resources describe a dialog panel, LQ Options", that is always added by the LW driver 
  441. // to the Print Job dialog.  It currently contains one option, which is to select bidirectional or
  442. // unidirectional printing.
  443.  
  444. // The 'ppnl' resource provides a description of the panel we want to have displayed by the Printing Manager
  445.  
  446. resource 'ppnl'  (kLQOptionsPanl, sysheap, purgeable)
  447. {
  448.         "LQ Options",         //    Name that appears below the panel's icon
  449.         smRoman,             //    script to use
  450.         kDriverIconID,     //    Resource ID of the panel's icon (an 'iclX' resource)
  451.         kLQOptionsDITL;    //    Resource ID of the 'DITL' that describes the dialog panel items
  452. };
  453.  
  454. // The 'DITL' resource describes the panel's dialog items
  455.  
  456. resource 'DITL' (kLQOptionsDITL, sysheap, purgeable) 
  457. {
  458.     {
  459.         /* [1] */    {10, 10, 26, 190}, StaticText {disabled, "Options:"},
  460.                 
  461.         /* [2] */    {33, 20, 49, 99}, StaticText {disabled, "Head Scan:"},
  462.         /* [3] */    {56, 50, 72, 218}, RadioButton {enabled, "Bidirectional"},
  463.         /* [4] */    {79, 50, 95, 218}, RadioButton {enabled, "Unidirectional"}
  464.     }
  465. };
  466.  
  467. // The 'xdtl' resource tells the Printing Manager the type of items that are logically grouped in 
  468. // the dialog panel and specifies the Job collection item into which the dialog item settings
  469. // should be stored.
  470.  
  471. resource 'xdtl' (kLQOptionsXdtl, sysheap, purgeable)
  472. {
  473.     {    
  474.         RadioButtons    { kDrvrCreatorType, kHeadMotionItemIndex,  0, {3, 4} }
  475.     };
  476. };
  477.  
  478. resource 'hdlg' (kLQOptionsPanl, purgeable, sysHeap) 
  479. {
  480.     HelpMgrVersion,
  481.     0,
  482.     hmDefaultOptions,
  483.     0,
  484.     3,        // hang left
  485.     
  486.     // missing items
  487.     HMSkipItem {},
  488.  
  489.     {
  490.     HMSkipItem {},
  491.     HMSkipItem {},
  492.  
  493.     HMStringResItem{
  494.         {6,6},
  495.         {0,0,0,0},
  496.         kHelpID, 1, 0, 0, kHelpID, 1, 0, 0, 
  497.         };
  498.  
  499.     HMStringResItem{
  500.         {6,6},
  501.         {0,0,0,0},
  502.         kHelpID, 2, 0, 0, kHelpID, 2, 0, 0, 
  503.         };
  504.         
  505.     }
  506. };
  507.  
  508. resource 'STR#' (kHelpID, purgeable, sysHeap)
  509. {
  510.     {
  511.     "Checking this option causes your printout to print faster, but with less quality.";
  512.     "Checking this option causes your printout to print slower, but with higher quality.";
  513.     };
  514. };
  515.  
  516.  
  517. /*************************** Default Input Tray Related Resources **************************/
  518. // The following resources describe the default input tray for the LQ printer.  These
  519. // resources are accessed by the Printing Manager when a deskptop printer is created.  They
  520. // define the default paper input slot for the printer.
  521.  
  522.  
  523. // The trayNameDataType specifies the human readable name of the default input tray
  524.  
  525. resource gxTrayNameDataType (kDefaultTrayNameID, sysheap, purgeable)
  526. {
  527.     "Paper Feed Slot";
  528. };
  529.  
  530.  
  531. // trayCountDataType specifies the default number of paper feed trays. Note that the
  532. // Printing Manager requires that this resource have resource ID trayCountDataID.
  533.  
  534. resource gxTrayCountDataType (kDefaultTrayRsrcID, sysheap, purgeable)
  535. {
  536.     1;
  537. };
  538.  
  539.  
  540. /*************************** LQ Cut Sheet Feeder Related Resources **************************/
  541. // The following resources describe the default number of sheet feeder trays for an LQ with a
  542. // feeder attached and the human readable names of the trays.
  543.  
  544.  
  545. // trayNameDataType specify the human readable names of the trays
  546.  
  547. resource gxTrayNameDataType (kDefaultSheetFdrTray1NameID, sysheap, purgeable)
  548. {
  549.     "Tray #1";
  550. };
  551.  
  552. resource gxTrayNameDataType (kDefaultSheetFdrTray2NameID, sysheap, purgeable)
  553. {
  554.     "Tray #2";
  555. };
  556.  
  557. resource gxTrayNameDataType (kDefaultSheetFdrTray3NameID, sysheap, purgeable)
  558. {
  559.     "Tray #3";
  560. };
  561.  
  562.  
  563. // trayCountDataType specifies the number of trays. Note that the
  564. // Printing Manager requires that this resource have resource ID trayCountDataID.
  565.  
  566. resource gxTrayCountDataType (kDefaultSheetFeederRsrcID, sysheap, purgeable)
  567. {
  568.     3;
  569. };
  570.  
  571.  
  572. /*************************** LQ Cut Sheet Feeder Dialog Setup Related Resources **************************/
  573. // The following resources describe the dialog that is displayed when the user attempts to configure
  574. // the paper that's contained in the printer's sheet feeder.  
  575.  
  576.  
  577. // These DITL and DLOG resources describe the sheetfeeder dialog
  578.  
  579. resource 'DITL' (kSheetFeederDITL, sysheap, purgeable)
  580. {
  581.     {
  582.         /* [1] */    {158, 380, 178, 440}, Button {enabled, "OK"},
  583.         /* [2] */    {158, 304, 178, 364}, Button {enabled, "Cancel"},
  584.         /* [3] */    {10, 30, 26, 370}, StaticText {disabled, "Please specify the paper in the LQ printer:"},
  585.         /* [4] */    {39, 247, 59, 440}, Control {enabled, kTray1Control},        // Tray #1 pop-up
  586.         /* [5] */    {64, 247, 84, 440}, Control {enabled, kTray2Control},        //    Tray #2 pop-up
  587.         /* [6] */    {87, 247, 110, 440}, Control {enabled, kTray3Control},    //    Tray #3 pop-up
  588.         /* [7] */    {47, 62, 177, 239}, UserItem {disabled}                        //    Picture of printer with sheetfeeder
  589.     }
  590. };
  591.  
  592. resource 'DLOG' (kSheetFeederDLOG, sysheap, purgeable)
  593. {
  594.     {34, 14, 225, 476},
  595.     dBoxProc,
  596.     invisible,
  597.     noGoAway,
  598.     0x0,
  599.     kSheetFeederDITL,
  600.     "LQ Setup",
  601.     alertPositionMainScreen
  602. };
  603.  
  604.  
  605. // This resource is needed for proper use of color in the Sheetfeeder dialog
  606.  
  607. resource 'dctb' (kSheetFeederDLOG, sysheap, purgeable)
  608. {
  609.     {    /* array ColorSpec: 0 elements */
  610.     }
  611. };
  612.  
  613.  
  614. // These MENU resources describe the pop-up menus that are included in the sheetfeeder dialog
  615.  
  616. resource 'MENU' (kTray1Menu, sysheap, purgeable)
  617. {
  618.     kTray1Menu,
  619.     textMenuProc,
  620.     allEnabled,
  621.     enabled,
  622.     "Tray #1",
  623.     {    /* array: 0 elements */
  624.     }
  625. };
  626.  
  627. resource 'MENU' (kTray2Menu, sysheap, purgeable)
  628. {
  629.     kTray2Menu,
  630.     textMenuProc,
  631.     allEnabled,
  632.     enabled,
  633.     "Tray #2",
  634.     {    /* array: 0 elements */
  635.     }
  636. };
  637.  
  638. resource 'MENU' (kTray3Menu, sysheap, purgeable)
  639. {
  640.     kTray3Menu,
  641.     textMenuProc,
  642.     allEnabled,
  643.     enabled,
  644.     "Tray #3",
  645.     {    /* array: 0 elements */
  646.     }
  647. };
  648.  
  649.  
  650. // These CNTL resources describe the dialog controls that reference the pop-up menus in the sheetfeeder dialog
  651.  
  652. resource 'CNTL' (kTray1Control, sysheap, purgeable)
  653. {
  654.     {39, 247, 59, 440},
  655.     0,
  656.     visible,
  657.     65,
  658.     kTray1Menu,
  659.     1008,
  660.     0,
  661.     "Tray #1:"
  662. };
  663.  
  664. resource 'CNTL' (kTray2Control, sysheap, purgeable)
  665. {
  666.     {64, 247, 84, 440},
  667.     0,
  668.     visible,
  669.     65,
  670.     kTray2Menu,
  671.     1008,
  672.     0,
  673.     "Tray #2:"
  674. };
  675.  
  676. resource 'CNTL' (kTray3Control, sysheap, purgeable)
  677. {
  678.     {87, 247, 110, 440},
  679.     0,
  680.     visible,
  681.     65,
  682.     kTray3Menu,
  683.     1008,
  684.     0,
  685.     "Tray #3:"
  686. };
  687.  
  688.  
  689. // These PICT resources are displayed in the sheetfeeder dialog and contain images of a 1, 2, and 3 tray LQ printer
  690.  
  691. resource 'PICT' (kThreeTrayPICT, sysheap, purgeable)                // Three tray LQ sheetfeeder
  692. {
  693.     1212,
  694.     {0, 0, 130, 177},
  695.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  696.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  697.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  698.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  699.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  700.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  701.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  702.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  703.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  704.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  705.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  706.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  707.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  708.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  709.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  710.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  711.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  712.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  713.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  714.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  715.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  716.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  717.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  718.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  719.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  720.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  721.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  722.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  723.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  724.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  725.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  726.     $"0023 F500 00A0 00A1 00A0 00A0 00A1 00A4"
  727.     $"0002 0750 0001 000A 0000 0000 0000 0000"
  728.     $"0022 0060 0057 0000 0023 0DEA 0023 0000"
  729.     $"0023 0900 0023 0000 0023 F516 0023 0000"
  730.     $"0023 F500 0023 0000 001A BFFF BFFF BFFF"
  731.     $"0084 000A 0000 0000 0000 0000 00A0 00A3"
  732.     $"0001 000A FFFF FFFF 0081 00B0 0081 00C0"
  733.     $"004A 0057 0060 006D 004A 0064 006D 7FFF"
  734.     $"004B 0063 0064 006C 006D 7FFF 004D 0062"
  735.     $"0063 006B 006C 7FFF 004E 0061 0062 7FFF"
  736.     $"004F 006A 006B 7FFF 0050 0060 0061 7FFF"
  737.     $"0051 0069 006A 7FFF 0052 005F 0060 7FFF"
  738.     $"0053 005E 005F 0068 0069 7FFF 0055 005D"
  739.     $"005E 0067 0068 7FFF 0057 005C 005D 0066"
  740.     $"0067 7FFF 0058 005B 005C 7FFF 0059 0065"
  741.     $"0066 7FFF 005A 005A 005B 7FFF 005B 0064"
  742.     $"0065 7FFF 005C 0059 005A 7FFF 005D 0058"
  743.     $"0059 0063 0064 7FFF 005F 0057 0058 0062"
  744.     $"0063 7FFF 0060 0057 0062 7FFF 7FFF 001A"
  745.     $"0000 0000 0000 0023 0DEA 0023 0900 0023"
  746.     $"F516 0023 F500 00A0 00A1 00A0 00A0 00A1"
  747.     $"00A4 0002 0750 0001 000A 0000 0000 0000"
  748.     $"0000 0022 0060 0075 0000 0023 0DEA 0023"
  749.     $"0000 0023 0900 0023 0000 0023 F516 0023"
  750.     $"0000 0023 F500 0023 0000 001A BFFF BFFF"
  751.     $"BFFF 0084 000A 0000 0000 0000 0000 00A0"
  752.     $"00A3 0001 000A FFFF FFFF 0081 00B0 0081"
  753.     $"00C0 004A 0075 0060 008B 004A 0082 008B"
  754.     $"7FFF 004B 0081 0082 008A 008B 7FFF 004D"
  755.     $"0080 0081 0089 008A 7FFF 004E 007F 0080"
  756.     $"7FFF 004F 0088 0089 7FFF 0050 007E 007F"
  757.     $"7FFF 0051 0087 0088 7FFF 0052 007D 007E"
  758.     $"7FFF 0053 007C 007D 0086 0087 7FFF 0055"
  759.     $"007B 007C 0085 0086 7FFF 0057 007A 007B"
  760.     $"0084 0085 7FFF 0058 0079 007A 7FFF 0059"
  761.     $"0083 0084 7FFF 005A 0078 0079 7FFF 005B"
  762.     $"0082 0083 7FFF 005C 0077 0078 7FFF 005D"
  763.     $"0076 0077 0081 0082 7FFF 005F 0075 0076"
  764.     $"0080 0081 7FFF 0060 0075 0080 7FFF 7FFF"
  765.     $"001A 0000 0000 0000 0023 0DEA 0023 0900"
  766.     $"0023 F516 0023 F500 00A0 00A1 0022 004B"
  767.     $"008A 0CE7 0022 004A 006D 17CF 0022 004A"
  768.     $"0050 23B7 0022 0032 0096 1800 0022 0019"
  769.     $"0086 2900 0022 0001 0073 3C00 00A0 0083"
  770.     $"00FF"
  771. };
  772.  
  773. resource 'PICT' (kTwoTrayPICT, sysheap, purgeable)                // Two tray LQ sheetfeeder
  774. {
  775.     874,
  776.     {0, 0, 130, 177},
  777.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  778.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  779.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  780.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  781.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  782.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  783.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  784.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  785.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  786.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  787.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  788.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  789.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  790.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  791.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  792.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  793.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  794.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  795.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  796.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  797.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  798.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  799.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  800.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  801.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  802.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  803.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  804.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  805.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  806.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  807.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  808.     $"0023 F500 00A0 00A1 00A0 00A0 00A1 00A4"
  809.     $"0002 0750 0001 000A 0000 0000 0000 0000"
  810.     $"0022 0060 0057 0000 0023 0DEA 0023 0000"
  811.     $"0023 0900 0023 0000 0023 F516 0023 0000"
  812.     $"0023 F500 0023 0000 001A BFFF BFFF BFFF"
  813.     $"0084 000A 0000 0000 0000 0000 00A0 00A3"
  814.     $"0001 000A FFFF FFFF 0081 00B0 0081 00C0"
  815.     $"004A 0057 0060 006D 004A 0064 006D 7FFF"
  816.     $"004B 0063 0064 006C 006D 7FFF 004D 0062"
  817.     $"0063 006B 006C 7FFF 004E 0061 0062 7FFF"
  818.     $"004F 006A 006B 7FFF 0050 0060 0061 7FFF"
  819.     $"0051 0069 006A 7FFF 0052 005F 0060 7FFF"
  820.     $"0053 005E 005F 0068 0069 7FFF 0055 005D"
  821.     $"005E 0067 0068 7FFF 0057 005C 005D 0066"
  822.     $"0067 7FFF 0058 005B 005C 7FFF 0059 0065"
  823.     $"0066 7FFF 005A 005A 005B 7FFF 005B 0064"
  824.     $"0065 7FFF 005C 0059 005A 7FFF 005D 0058"
  825.     $"0059 0063 0064 7FFF 005F 0057 0058 0062"
  826.     $"0063 7FFF 0060 0057 0062 7FFF 7FFF 001A"
  827.     $"0000 0000 0000 0023 0DEA 0023 0900 0023"
  828.     $"F516 0023 F500 00A0 00A1 0022 004A 006D"
  829.     $"17CF 0022 004A 0050 23B7 0022 0019 0086"
  830.     $"2900 0022 0001 0073 3C00 00A0 0083 00FF"
  831. };
  832.  
  833. resource 'PICT' (kOneTrayPICT, sysheap, purgeable)                // One tray LQ sheetfeeder
  834. {
  835.     532,
  836.     {0, 0, 130, 177},
  837.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  838.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  839.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  840.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  841.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  842.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  843.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  844.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  845.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  846.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  847.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  848.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  849.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  850.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  851.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  852.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  853.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  854.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  855.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  856.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  857.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  858.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  859.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  860.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  861.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  862.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  863.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  864.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  865.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  866.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  867.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  868.     $"0023 F500 00A0 00A1 0022 004A 0050 23B7"
  869.     $"0023 3C00 00A0 0083 00FF"
  870. };
  871.  
  872.  
  873. /*************************** Draft Mode Printing Resources **************************/
  874. // The idft resource describes all of the characters that can be output to the LQ in draft
  875. // mode.  For any of the possible characters, the table lists the one or two character
  876. // sequence that needs to be printed in order to generate the target character.  In the event
  877. // two characters must be printed in order to generate the target character, the second character
  878. // is overstruck on the first character.
  879.  
  880. type 'idft' {
  881.     array charArray {
  882.     unsigned bitstring[1] noBack = 0, Back = 1;            //    Back => must overstrike first character with the second
  883.     unsigned bitstring[3] = 0;
  884.     unsigned bitstring[4]    American =    kAmerican,         // Character sets supported
  885.                                     British    =    kBritish, 
  886.                                     Danish    =    kDanish, 
  887.                                     French    =    kFrench, 
  888.                                     German    =    kGerman, 
  889.                                     Italian    =    kItalian, 
  890.                                     Swedish    =    kSwedish, 
  891.                                     Spanish    =    kSpanish;    
  892.     unsigned hex byte noChar = $00;                            //    The actual character to print
  893.     };
  894. };
  895.  
  896. // Note: to properly see the following characters, this file should be viewed in Courier
  897.  
  898. resource 'idft' (gxPrintingDriverBaseID, sysheap, purgeable)
  899. {
  900.     {
  901.     noBack,        American,    $20;    noBack,        American,    noChar;        // space
  902.     noBack,        American,    $21;    noBack,        American,    noChar;        // !
  903.     noBack,        American,    $22;    noBack,        American,    noChar;        // "
  904.     noBack,        American,    $23;    noBack,        American,    noChar;        // #
  905.     noBack,        American,    $24;    noBack,        American,    noChar;        // $
  906.     noBack,        American,    $25;    noBack,        American,    noChar;        // %
  907.     noBack,        American,    $26;    noBack,        American,    noChar;        // &
  908.     noBack,        American,    $27;    noBack,        American,    noChar;        // '
  909.     noBack,        American,    $28;    noBack,        American,    noChar;        // (
  910.     noBack,        American,    $29;    noBack,        American,    noChar;        // )
  911.     noBack,        American,    $2A;    noBack,        American,    noChar;        // *
  912.     noBack,        American,    $2B;    noBack,        American,    noChar;        // +
  913.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ,
  914.     noBack,        American,    $2D;    noBack,        American,    noChar;        // -
  915.     noBack,        American,    $2E;    noBack,        American,    noChar;        // .
  916.     noBack,        American,    $2F;    noBack,        American,    noChar;        // /
  917.     
  918.     noBack,        American,    $30;    noBack,        American,    noChar;        // 0
  919.     noBack,        American,    $31;    noBack,        American,    noChar;        // 1
  920.     noBack,        American,    $32;    noBack,        American,    noChar;        // 2
  921.     noBack,        American,    $33;    noBack,        American,    noChar;        // 3
  922.     noBack,        American,    $34;    noBack,        American,    noChar;        // 4
  923.     noBack,        American,    $35;    noBack,        American,    noChar;        // 5
  924.     noBack,        American,    $36;    noBack,        American,    noChar;        // 6
  925.     noBack,        American,    $37;    noBack,        American,    noChar;        // 7
  926.     noBack,        American,    $38;    noBack,        American,    noChar;        // 8
  927.     noBack,        American,    $39;    noBack,        American,    noChar;        // 9
  928.     noBack,        American,    $3A;    noBack,        American,    noChar;        // :
  929.     noBack,        American,    $3B;    noBack,        American,    noChar;        // ;
  930.     noBack,        American,    $3C;    noBack,        American,    noChar;        // <
  931.     noBack,        American,    $3D;    noBack,        American,    noChar;        // =
  932.     noBack,        American,    $3E;    noBack,        American,    noChar;        // >
  933.     noBack,        American,    $3F;    noBack,        American,    noChar;        // ?
  934.     
  935.     noBack,        American,    $40;    noBack,        American,    noChar;        // @
  936.     noBack,        American,    $41;    noBack,        American,    noChar;        // A
  937.     noBack,        American,    $42;    noBack,        American,    noChar;        // B
  938.     noBack,        American,    $43;    noBack,        American,    noChar;        // C
  939.     noBack,        American,    $44;    noBack,        American,    noChar;        // D
  940.     noBack,        American,    $45;    noBack,        American,    noChar;        // E
  941.     noBack,        American,    $46;    noBack,        American,    noChar;        // F
  942.     noBack,        American,    $47;    noBack,        American,    noChar;        // G
  943.     noBack,        American,    $48;    noBack,        American,    noChar;        // H
  944.     noBack,        American,    $49;    noBack,        American,    noChar;        // I
  945.     noBack,        American,    $4A;    noBack,        American,    noChar;        // J
  946.     noBack,        American,    $4B;    noBack,        American,    noChar;        // K
  947.     noBack,        American,    $4C;    noBack,        American,    noChar;        // L
  948.     noBack,        American,    $4D;    noBack,        American,    noChar;        // M
  949.     noBack,        American,    $4E;    noBack,        American,    noChar;        // N
  950.     noBack,        American,    $4F;    noBack,        American,    noChar;        // O
  951.     noBack,        American,    $50;    noBack,        American,    noChar;        // P
  952.     noBack,        American,    $51;    noBack,        American,    noChar;        // Q
  953.     noBack,        American,    $52;    noBack,        American,    noChar;        // R
  954.     noBack,        American,    $53;    noBack,        American,    noChar;        // S
  955.     noBack,        American,    $54;    noBack,        American,    noChar;        // T
  956.     noBack,        American,    $55;    noBack,        American,    noChar;        // U
  957.     noBack,        American,    $56;    noBack,        American,    noChar;        // V
  958.     noBack,        American,    $57;    noBack,        American,    noChar;        // W
  959.     noBack,        American,    $58;    noBack,        American,    noChar;        // X
  960.     noBack,        American,    $59;    noBack,        American,    noChar;        // Y
  961.     noBack,        American,    $5A;    noBack,        American,    noChar;        // Z
  962.     
  963.     noBack,        American,    $5B;    noBack,        American,    noChar;        // [
  964.     noBack,        American,    $5C;    noBack,        American,    noChar;        // \
  965.     noBack,        American,    $5D;    noBack,        American,    noChar;        // ]
  966.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ^
  967.     noBack,        American,    $5F;    noBack,        American,    noChar;        // _
  968.     noBack,        American,    $60;    noBack,        American,    noChar;        // `
  969.     
  970.     noBack,        American,    $61;    noBack,        American,    noChar;        // a
  971.     noBack,        American,    $62;    noBack,        American,    noChar;        // b
  972.     noBack,        American,    $63;    noBack,        American,    noChar;        // c
  973.     noBack,        American,    $64;    noBack,        American,    noChar;        // d
  974.     noBack,        American,    $65;    noBack,        American,    noChar;        // e
  975.     noBack,        American,    $66;    noBack,        American,    noChar;        // f
  976.     noBack,        American,    $67;    noBack,        American,    noChar;        // g
  977.     noBack,        American,    $68;    noBack,        American,    noChar;        // h
  978.     noBack,        American,    $69;    noBack,        American,    noChar;        // i
  979.     noBack,        American,    $6A;    noBack,        American,    noChar;        // j
  980.     noBack,        American,    $6B;    noBack,        American,    noChar;        // k
  981.     noBack,        American,    $6C;    noBack,        American,    noChar;        // l
  982.     noBack,        American,    $6D;    noBack,        American,    noChar;        // m
  983.     noBack,        American,    $6E;    noBack,        American,    noChar;        // n
  984.     noBack,        American,    $6F;    noBack,        American,    noChar;        // o
  985.     noBack,        American,    $70;    noBack,        American,    noChar;        // p
  986.     noBack,        American,    $71;    noBack,        American,    noChar;        // q
  987.     noBack,        American,    $72;    noBack,        American,    noChar;        // r
  988.     noBack,        American,    $73;    noBack,        American,    noChar;        // s
  989.     noBack,        American,    $74;    noBack,        American,    noChar;        // t
  990.     noBack,        American,    $75;    noBack,        American,    noChar;        // u
  991.     noBack,        American,    $76;    noBack,        American,    noChar;        // v
  992.     noBack,        American,    $77;    noBack,        American,    noChar;        // w
  993.     noBack,        American,    $78;    noBack,        American,    noChar;        // x
  994.     noBack,        American,    $79;    noBack,        American,    noChar;        // y
  995.     noBack,        American,    $7A;    noBack,        American,    noChar;        // z
  996.     
  997.     noBack,        American,    $7B;    noBack,        American,    noChar;        // {
  998.     noBack,        American,    $7C;    noBack,        American,    noChar;        // |
  999.     noBack,        American,    $7D;    noBack,        American,    noChar;        // }
  1000.     noBack,        American,    $7E;    noBack,        American,    noChar;        // ~
  1001.     noBack,        American,    $20;    noBack,        American,    noChar;        // undefined
  1002.     
  1003.     // $80 col
  1004.     noBack,        Swedish,        $5B;    noBack,        American,    noChar;        // Ä
  1005.     noBack,        Swedish,        $5D;    noBack,        American,    noChar;        // Å
  1006.     noBack,        American,    $43;    Back,            American,    $2C;            // Ç
  1007.     noBack,        American,    $45;    Back,            American,    $27;            // É
  1008.     noBack,        Spanish,        $5C;    noBack,        American,    noChar;        // Ñ
  1009.     noBack,        Swedish,        $5C;    noBack,        American,    noChar;        // Ö
  1010.     noBack,        German,        $5D;    noBack,        American,    noChar;        // Ü
  1011.     noBack,        American,    $61;    Back,            American,    $27;            // á
  1012.     noBack,        Italian,        $7B;    noBack,        American,    noChar;        // à
  1013.     noBack,        American,    $61;    Back,            American,    $5E;            // â
  1014.     noBack,        German,        $7B;    noBack,        American,    noChar;        // ä
  1015.     noBack,        American,    $61;    Back,            American,    $7E;            // ã
  1016.     noBack,        Danish,        $7D;    noBack,        American,    noChar;        // å
  1017.     noBack,        French,        $5C;    noBack,        American,    noChar;        // ç
  1018.     noBack,        French,        $7B;    noBack,        American,    noChar;        // é
  1019.     noBack,        French,        $7D;    noBack,        American,    noChar;        // è
  1020.  
  1021.     // $90 col
  1022.     noBack,        American,    $65;    Back,            American,    $5E;            // ê
  1023.     noBack,        American,    $22;    Back,            American,    $65;            // ë
  1024.     noBack,        American,    $69;    Back,            American,    $27;            // í
  1025.     noBack,        Italian,        $7E;    noBack,        American,    noChar;        // ì
  1026.     noBack,        American,    $69;    Back,            American,    $5E;            // î
  1027.     noBack,        American,    $22;    Back,            American,    $69;            // ï
  1028.     noBack,        Spanish,        $7C;    noBack,        American,    noChar;        // ñ
  1029.     noBack,        American,    $6F;    Back,            American,    $27;            // ó
  1030.     noBack,        Italian,        $7C;    noBack,        American,    noChar;        // ò
  1031.     noBack,        American,    $6F;    Back,            American,    $5E;            // ô
  1032.     noBack,        Swedish,        $7C;    noBack,        American,    noChar;        // ö
  1033.     noBack,        American,    $6F;    Back,            American,    $7E;            // õ
  1034.     noBack,        American,    $75;    Back,            American,    $27;            // ú
  1035.     noBack,        French,        $7C;    noBack,        American,    noChar;        // ù
  1036.     noBack,        American,    $75;    Back,            American,    $5E;            // û
  1037.     noBack,        German,        $7D;    noBack,        American,    noChar;        // ü
  1038.         
  1039.     // $A0 col
  1040.     noBack,        American,    $2B;    Back,            American,    $7C;            // †
  1041.     noBack,        American,    $2A;    noBack,        American,    noChar;        // •
  1042.     noBack,        American,    $63;    Back,            American,    $7C;            // ¢
  1043.     noBack,        British,        $23;    noBack,        American,    noChar;        // £
  1044.     noBack,        German,        $40;    noBack,        American,    noChar;        // §
  1045.     noBack,        French,        $5B;    noBack,        American,    noChar;        // °
  1046.     noBack,        American,    $50;    noBack,        American,    noChar;        // ¶
  1047.     noBack,        German,        $7E;    noBack,        American,    noChar;        // ß
  1048.     noBack,        American,    $4F;    Back,            American,    $72;            // ®
  1049.     noBack,        American,    $4F;    Back,            American,    $63;            // ©
  1050.     noBack,        American,    $74;    noBack,        American,    $6D;            // ™
  1051.     noBack,        American,    $27;    noBack,        American,    noChar;        // ´
  1052.     noBack,        French,        $7E;    noBack,        American,    noChar;        // ¨
  1053.     noBack,        American,    $3D;    Back,            American,    $2F;            // ≠
  1054.     noBack,        Danish,        $5B;    noBack,        American,    noChar;        // Æ
  1055.     noBack,        Danish,        $5C;    noBack,        American,    noChar;        // Ø
  1056.     
  1057.     // $B0 col
  1058.     noBack,        American,    $4F;    Back,            American,    $7C;            // ∞
  1059.     noBack,        American,    $2B;    Back,            American,    $5F;            // ±
  1060.     noBack,        American,    $3C;    Back,            American,    $5F;            // ≤
  1061.     noBack,        American,    $3E;    Back,            American,    $5F;            // ≥
  1062.     noBack,        American,    $59;    Back,            American,    $3D;            // ¥
  1063.     noBack,        American,    $75;    noBack,        American,    noChar;        // µ
  1064.     noBack,        American,    $40;    noBack,        American,    noChar;        // ∂
  1065.     noBack,        American,    $DC;    Back,            American,    $3E;            // ∑
  1066.     noBack,        American,    $6E;    noBack,        American,    noChar;        // ∏
  1067.     noBack,        American,    $6E;    noBack,        American,    noChar;        // π
  1068.     noBack,        American,    $2F;    noBack,        American,    noChar;        // ∫
  1069.     noBack,        American,    $61;    Back,            American,    $5F;            // ª
  1070.     noBack,        American,    $6F;    Back,            American,    $5F;            // º
  1071.     noBack,        American,    $5A;    noBack,        American,    noChar;        // Ω
  1072.     noBack,        Danish,        $7B;    noBack,        American,    noChar;        // æ
  1073.     noBack,        Danish,        $7C;    noBack,        American,    noChar;        // ø
  1074.  
  1075.     // $C0 col
  1076.     noBack,        Spanish,        $5D;    noBack,        American,    noChar;        // ¿
  1077.     noBack,        Spanish,        $5B;    noBack,        American,    noChar;        // ¡
  1078.     noBack,        American,    $CC;    Back,            American,    $DA;            // ¬
  1079.     noBack,        American,    $C5;    noBack,        American,    noChar;        // √
  1080.     noBack,        American,    $53;    noBack,        American,    noChar;        // ƒ
  1081.     noBack,        American,    $3D;    noBack,        American,    noChar;        // ≈
  1082.     noBack,        American,    $5E;    Back,            American,    $2D;            // Δ
  1083.     noBack,        American,    $C8;    noBack,        American,    noChar;        // «
  1084.     noBack,        American,    $D5;    noBack,        American,    noChar;        // »
  1085.     noBack,        American,    $C9;    noBack,        American,    noChar;        // …
  1086.     noBack,        American,    $20;    noBack,        American,    noChar;        // non-breaking space
  1087.     noBack,        American,    $41;    Back,            American,    $60;            // À
  1088.     noBack,        American,    $41;    Back,            American,    $7E;            // Ã
  1089.     noBack,        American,    $4F;    Back,            American,    $7E;            // Õ
  1090.     noBack,        American,    $6F;    noBack,        American,    $65;            // œ
  1091.     noBack,        American,    $4F;    noBack,        American,    $45;            // Œ
  1092.     
  1093.     // $D0 col
  1094.     noBack,        American,    $2D;    noBack,        American,    noChar;        // –
  1095.     noBack,        American,    $D3;    noBack,        American,    noChar;        // —
  1096.     noBack,        American,    $22;    noBack,        American,    noChar;        // “
  1097.     noBack,        American,    $22;    noBack,        American,    noChar;        // ”
  1098.     noBack,        American,    $27;    noBack,        American,    noChar;        // ‘
  1099.     noBack,        American,    $60;    noBack,        American,    noChar;        // ’
  1100.     noBack,        American,    $2B;    noBack,        American,    noChar;        // ÷
  1101.     noBack,        American,    $DB;    noBack,        American,    noChar;        // ◊
  1102.     noBack,        American,    $79;    Back,            American,    $22;            // ÿ
  1103.     noBack,        American,    $59;    Back,            American,    $22;            // Ÿ
  1104.     noBack,        American,    $2F;    noBack,        American,    noChar;        // /
  1105.     noBack,        American,    $DD;    noBack,        American,    noChar;        // €
  1106.     noBack,        American,    $3C;    noBack,        American,    noChar;        // ‹
  1107.     noBack,        American,    $3E;    noBack,        American,    noChar;        // ›
  1108.     noBack,        American,    $66;    noBack,        American,    $69;            // fi
  1109.     noBack,        American,    $66;    noBack,        American,    $6C;            // fl
  1110.     
  1111.     // $E0 col
  1112.     noBack,        American,    $3D;    Back,            American,    $7C;            // ‡
  1113.     noBack,        American,    $2E;    noBack,        American,    noChar;        // ·
  1114.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ‚
  1115.     noBack,        American,    $2C;    noBack,        American,    noChar;        // „
  1116.     noBack,        American,    $25;    noBack,        American,    noChar;        // ‰
  1117.     noBack,        Danish,        $5D;    noBack,        American,    noChar;        // Â
  1118.     noBack,        American,    $45;    Back,            American,    $5E;            // Ê
  1119.     noBack,        American,    $41;    Back,            American,    $27;            // Á
  1120.     noBack,        American,    $45;    Back,            American,    $22;            // Ë
  1121.     noBack,        American,    $45;    Back,            American,    $60;            // È
  1122.     noBack,        American,    $49;    Back,            American,    $27;            // Í
  1123.     noBack,        American,    $49;    Back,            American,    $5E;            // Î
  1124.     noBack,        American,    $49;    Back,            American,    $22;            // Ï
  1125.     noBack,        American,    $49;    Back,            American,    $60;            // Ì
  1126.     noBack,        American,    $4F;    Back,            American,    $27;            // Ó
  1127.     noBack,        American,    $4F;    Back,            American,    $5E;            // Ô
  1128.     
  1129.     // $F0 col
  1130.     noBack,        American,    $C0;    noBack,        American,    noChar;        // 
  1131.     noBack,        American,    $4F;    Back,            American,    $60;            // Ò
  1132.     noBack,        American,    $55;    Back,            American,    $27;            // Ú
  1133.     noBack,        American,    $55;    Back,            American,    $5E;            // Û
  1134.     noBack,        American,    $55;    Back,            American,    $60;            // Ù
  1135.     noBack,        American,    $69;    noBack,        American,    noChar;        // i
  1136.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ^
  1137.     noBack,        Danish,        $7E;    noBack,        American,    noChar;        // ˜
  1138.     noBack,        American,    $2D;    noBack,        American,    noChar;        // ¯
  1139.     noBack,        American,    $2D;    noBack,        American,    noChar;        // ˘
  1140.     noBack,        American,    $2E;    noBack,        American,    noChar;        // ·
  1141.     noBack,        American,    $2E;    noBack,        American,    noChar;        // °
  1142.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ¸
  1143.     noBack,        American,    $22;    noBack,        American,    noChar;        // ˝
  1144.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ˛
  1145.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ˇ
  1146.     };
  1147. };
  1148.  
  1149.  
  1150. // This 'STR#' contains a list of all of the native mode fonts that are supported.  Note the fonts
  1151. // listed here MUST exist in the target system.
  1152.  
  1153. resource 'STR#' (kFormatModeFontsID, sysheap, purgeable) 
  1154. {
  1155.     {
  1156.         "Monaco"
  1157.     }
  1158. };
  1159.  
  1160.  
  1161. // This 'STR#' contains a list of all of the native mode styles that are supported (the indices into the
  1162. // list are well known so don't reorder them.
  1163.  
  1164. resource 'STR#' (kFormatModeStylesID, sysheap, purgeable) 
  1165. {
  1166.     {
  1167.         "Bold",            //    kBoldStyle
  1168.         "Underline"        //    kUnderlineStyle
  1169.     }
  1170. };
  1171.  
  1172.  
  1173. // This 'STR#' contains a list of all of the qualities that are supported.
  1174.  
  1175. resource 'STR#' (kQualityID, sysheap, purgeable) 
  1176. {
  1177.     {
  1178.         "Best",
  1179.         "Rough"
  1180.     }
  1181. };
  1182.